home *** CD-ROM | disk | FTP | other *** search
-
- TCP(4) UNIX Programmer's Manual TCP(4)
-
- NNAAMMEE
- ttccpp - Internet Transmission Control Protocol
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ssoocckkeett..hh>>
- ##iinncclluuddee <<nneettiinneett//iinn..hh>>
-
- _i_n_t
- ssoocckkeett(_A_F___I_N_E_T, _S_O_C_K___S_T_R_E_A_M, _0)
-
- DDEESSCCRRIIPPTTIIOONN
- The TCP protocol provides reliable, flow-controlled, two-way transmission
- of data. It is a byte-stream protocol used to support the SOCK_STREAM
- abstraction. TCP uses the standard Internet address format and, in addi-
- tion, provides a per-host collection of ``port addresses''. Thus, each
- address is composed of an Internet address specifying the host and net-
- work, with a specific TCP port on the host identifying the peer entity.
-
- Sockets utilizing the tcp protocol are either ``active'' or ``passive''.
- Active sockets initiate connections to passive sockets. By default TCP
- sockets are created active; to create a passive socket the listen(2) sys-
- tem call must be used after binding the socket with the bind(2) system
- call. Only passive sockets may use the accept(2) call to accept incoming
- connections. Only active sockets may use the connect(2) call to initiate
- connections.
-
- Passive sockets may ``underspecify'' their location to match incoming
- connection requests from multiple networks. This technique, termed
- ``wildcard addressing'', allows a single server to provide service to
- clients on multiple networks. To create a socket which listens on all
- networks, the Internet address INADDR_ANY must be bound. The TCP port
- may still be specified at this time; if the port is not specified the
- system will assign one. Once a connection has been established the sock-
- et's address is fixed by the peer entity's location. The address as-
- signed the socket is the address associated with the network interface
- through which packets are being transmitted and received. Normally this
- address corresponds to the peer entity's network.
-
- TCP supports one socket option which is set with setsockopt(2) and tested
- with getsockopt(2). Under most circumstances, TCP sends data when it is
- presented; when outstanding data has not yet been acknowledged, it gath-
- ers small amounts of output to be sent in a single packet once an ac-
- knowledgement is received. For a small number of clients, such as window
- systems that send a stream of mouse events which receive no replies, this
- packetization may cause significant delays. Therefore, TCP provides a
- boolean option, TCP_NODELAY (from <_n_e_t_i_n_e_t_/_t_c_p_._h>, to defeat this algo-
- rithm. The option level for the setsockopt call is the protocol number
- for TCP, available from getprotobyname(3).
-
- Options at the IP transport level may be used with TCP; see ip(4). In-
- coming connection requests that are source-routed are noted, and the re-
- verse source route is used in responding.
-
- DDIIAAGGNNOOSSTTIICCSS
- A socket operation may fail with one of the following errors returned:
-
- [EISCONN] when trying to establish a connection on a socket which
- already has one;
-
- [ENOBUFS] when the system runs out of memory for an internal data
-
-
- structure;
-
- [ETIMEDOUT] when a connection was dropped due to excessive retrans-
- missions;
-
- [ECONNRESET] when the remote peer forces the connection to be closed;
-
- [ECONNREFUSED] when the remote peer actively refuses connection estab-
- lishment (usually because no process is listening to the
- port);
-
- [EADDRINUSE] when an attempt is made to create a socket with a port
- which has already been allocated;
-
- [EADDRNOTAVAIL] when an attempt is made to create a socket with a net-
- work address for which no network interface exists.
-
- SSEEEE AALLSSOO
- getsockopt(2), socket(2), intro(4), inet(4), ip(4)
-
- HHIISSTTOORRYY
- The ttccpp protocol stack appeared in 4.2BSD.
-
- 4.2 Berkeley Distribution June 5, 1993 2
-